package cn.cdeden.resource.api;

import cn.cdeden.common.oss.enumd.OssModuleOperate;
import cn.cdeden.resource.api.domain.*;
import com.alibaba.fastjson2.JSONObject;

import java.util.List;

/**
 * @ProjectName : KnowCore01
 * @Package : cn.cdeden.resource.api
 * @ClassName : UploadService
 * @Author : Yu.
 * @Description : //  上传文件数据
 * @Date : 2024/12/4 17:33
 * @Version : 1.0
 */
public interface OssUploadService {



    /**
     * @param moduleId 在模块里的编号
     * @param userId   要查看的用户会
     * @param info     其他参数信息
     * @param operate
     * @return cn.cdeden.resource.api.domain.RemoteFile
     * @author Yu.
     * @Description // 获取文件信息
     * @Date 2024/12/8 14:28
     **/
    RemoteFile getFileDataInfo(String moduleId, Long userId , JSONObject info , OssModuleOperate operate);



    /**
     * @author Yu.
     * @Description // 到OSS 前验证 参数是否正确  放回基本文件储存信息   有问题直接抛出异常
     * @Date 2024/12/4 17:44
     * @param info 验证参数
     * @param userId 操作者
     * @return String  放回的数据 有值就是 提示保存
     **/
    RemoteOssUpload verifyData(RemoteOssUpload info, Long userId);


    /**
     * 上传文件
     *
     * @param upload
     * @param userId
     * @return java.lang.Object
     * @author Yu.
     * @Date 2024/12/5 13:53
     **/
    RemoteFilesBucketPath upload(RemoteFilesUpload upload, Long userId);



    /**
     * 下载文件夹
     * @author Yu.
     * @Date 2024/12/5 18:21
     * @param idList
     * @param userId
     * @param jsonObject
     * @return java.util.List<cn.cdeden.resource.api.domain.RemoteFilesDownload>
     **/
     List<RemoteFilesDownload> downloadFile(List<String> idList, Long userId , JSONObject jsonObject);







}
